1. Field of the Invention
The present invention relates to a two-dimensional inverse discrete cosine transform circuit and, in particular, to a circuit that accomplishes a two-dimensional inverse discrete cosine transform (IDCT) suitable for processing a picture signal.
2. Description of the Related Art
Because of improvement of microprocessors and signal processors in recent years, picture signals have been processed on real time basis with these microprocessors and signal processors.
In a microprocessor that has multiplying units and sum-of-product calculating units, a sum-of-product calculation can be accomplished with the same number of clock pulses as an addition/subtraction. Thus, for increasing the speed of the process, it is desired to decrease the total of the number of additions/subtractions in spite of to decrease merely the number of sum-of-product calculations.
When a two-dimensional DCT or a two-dimensional IDCT is accomplished by a microprocessor or a signal processor, due to the restriction of the number of internal registers, one-dimensional (I)DCTs are calculated in line direction and the calculated results are temporarily stored in an external memory. Next, the calculated results in the line direction are read in row direction so as to perform one-dimensional (I)DCTs in the row direction.
At this point, for preventing the number of calculations and the amount of hardware from increasing, the calculated results in the line direction are stored as single-precision data in the external memory. Thus, a calculation error takes place. A method for suppressing both such a calculation error and the total of the number of sum-of-product calculations and additions/subtractions is described in, for example, "A Study of High-Speed Calculations of Two-Dimensional (I)DCT," Proceedings Fundamental/Boundary Society Convention, pp. 88A-86, Vol. 1, 1995, The Institute of Electronics, Information and Communication Engineers, Japan.
FIG. 30 is a block diagram showing a two-dimensional IDCT (Inverse Discrete Cosine Transform) circuit proposed in the above-described proceedings.
Tensor product calculating units 10 to 18 receive data with addresses shown in FIG. 30. Referring to FIG. 30, it is assumed that indexes i and j are an integer ranging from 0 to 7 and that a transform coefficient of eight-point.times.eight-point two-dimensional discrete cosine transform is expressed by (ij) where i is an address in the vertical direction and j is an address in the horizontal direction. The first tensor product calculating unit 10 receives (00), (04), (40), and (44). The second tensor product calculating unit 11 receives (02), (06), (42), and (46). The third tensor product calculating unit 12 receives (20), (24), (60), and (64). The fourth tensor product calculating unit 13 receives (22), (26), (62), and (66). The fifth tensor product calculating unit 14 receives (01), (03), (05), (07), (41), (43), (45), and (47). The sixth tensor product calculating unit 15 receives (21), (23), (25), (27), (61), (63), (65), and (67). The seventh tensor product calculating unit 16 receives (10), (14), (30), (34), (50), (54), (70), and (74). The eighth tensor product calculating unit 17 receives (12), (16), (32), (36), (52), (56), (72), and (76). The ninth tensor product calculating unit 18 receives (11), (13), (15), (17), (31), (33), (35), (37), (51), (53), (55), (57), (71), (73), (75), and (77).
A first two-dimensional butterfly calculating unit 19 receives calculated results of the first to fourth tensor product calculating units 10 to 13 and performs a four-point.times.four-point two-dimensional butterfly calculation for the received data. A first one-dimensional butterfly calculating unit 20 receives calculated results of the fifth and sixth tensor product calculating units 14 and 15 and performs a 16-point one-dimensional butterfly calculation for the received data. A second one-dimensional butterfly calculating unit 21 receives calculated results of the seventh and eighth tensor product calculating units 16 and 17 and performs a 16-point one-dimensional butterfly calculation for the received data.
A second two-dimensional butterfly calculating unit 22 receives calculated results of the first two-dimensional butterfly calculating unit 19, the first and second one-dimensional butterfly calculating units 20 and 21, and the ninth tensor product calculating unit 18 and performs an eight-point.times.eight-point two-dimensional butterfly calculation for the received data.
With reference to FIG. 30, when all of the received data of each of the first to ninth tensor product calculating units 10 to 18 are zero data, all of the output data thereof are zero data. However, in the conventional method, all of the tensor product calculations are performed regardless of whether the input data are zero data or non-zero data. Thus, the number of calculations in the case that the received data are zero data is the same as the number of calculations in the case that the received data are non-zero data.